package com.cy.store.interceptor;

import org.springframework.web.servlet.HandlerInterceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * @author Luo Sheng
 * @school YiBin university
 * @create 2022-12-01 10:21
 */

/**
 * 定义一个拦截器，拦截前端请求
 */
public class LoginInterceptor implements HandlerInterceptor {

    /**
     * 检测全局session对象中是否有uid数据，如果有就放行，如果没有就重定向到登陆页面
     * @param request   请求对象
     * @param response 响应对象
     * @param handler 处理器（url+controller：映射）
     * @return 如果返回值位true表示放行当前的请求，如果返回值为false表示拦截当前请求
     * @throws Exception
     */
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        // 先获取到全局的session对象
        Object obj = request.getSession().getAttribute("uid");
        // 判断当前用户是否登陆过系统
        if (obj == null){
            // 没有登陆过的处理
            response.sendRedirect("/web/login.html");
            // 结束后续的调用
            return false;

        }
        // 请求放行
        return true;
    }
}
